#ifndef Filter_h
#define Filter_h

class Filter {
	public:
		Filter(double support);
		virtual ~Filter();
		
		double getSupport() const { return support; }
		double getSupportArea() const { return support_area; }
		virtual double getWeight(double x, double y, int num_samples) const = 0;
		virtual void getWeights(double* weights, int samples, double* xs, double* ys) const = 0;

	protected:
		double support;
		double support_area;
		
};

#endif